package exception;

/**
 * throw关键字可以对外显示的抛出一个异常
 * 通常下列情况我们会对外主动抛出异常:
 * 1:程序出现了异常，但是该异常不应当在当前代码片段被处理时可以主动抛出给调用者解决。
 * 2:程序可以运行，但是不满足业务场景时可以主动对外抛出异常。
 */
public class ThrowDemo {
    public static void main(String[] args) {
        Person p = new Person();
        try {
            /*
                当我们调用一个含有throws声明异常抛出的方法时，编译器要求我们必须处理该
                异常，处理方式有两种:
                1:使用try-catch主动捕获并处理异常
                2:在当前方法上继续使用throws声明该异常的抛出
                具体选取要结合实际业务场景分析异常处理的责任问题。
             */
            p.setAge(10000);//满足语法，但是不满足业务
        } catch (IllegalAgeException e) {
            e.printStackTrace();
        }

        System.out.println("此人年龄："+p.getAge());
    }
}
